package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration  //标识这是一个配置类，用于定义Spring Bean
@Slf4j  //Lombok注解，提供日志记录功能
public class OssConfiguration {

    @Bean  //将 AliOssUtil 注册为Spring容器管理的Bean
    @ConditionalOnMissingBean  //确保只有在容器中不存在该Bean时才创建
    //定义一个名为 aliOssUtil 的Bean方法
    //方法参数 AliOssProperties 会由Spring自动注入相关配置
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传工具类对象: {}", aliOssProperties);
        //创建 AliOssUtil 工具类实例
        return new AliOssUtil(aliOssProperties.getEndpoint(),  //OSS服务接入点地址
                aliOssProperties.getAccessKeyId(),  //访问密钥ID
                aliOssProperties.getAccessKeySecret(),  //访问密钥密码
                aliOssProperties.getBucketName());  //存储空间名称
    }
}
